Gliederung

Arten von räumlichen Daten:

Das R-paket ggmap wird im folgenden genutzt um verschiedene Kartentypen darzustellen.

Mit qmap kann man eine schnelle Karte erzeugen.

Straßenkarten

Mannheim

A road map is one of the most widely used map types.

Road maps

Install the library

  1. possibility
install.packages("ggmap")
  1. possibility:

pic

pic

Library ggmap - Hallo Welt

library(ggmap)
qmap("Mannheim")

Karte für eine Sehenswürdigkeit

BBT <- qmap("Berlin Brandenburger Tor")
BBT

Karte für einen ganzen Staat

qmap("Germany")

Use another zoom level

qmap("Germany", zoom = 6)

Get help with the questionmark

?qmap

Different components in the help

The examples section of help

Extract from the help file on qmap:

pic

This examples can be directly copy-pasted to the console

qmap("baylor university")
qmap("baylor university", zoom = 14)
# and so on

Other zoom level

qmap("Mannheim", zoom = 12)

Get closer

qmap('Mannheim', zoom = 13)

Get very close

qmap('Mannheim', zoom = 20)

ggmap - source OpenStreetMap

qmap('Mannheim', zoom = 14, source="osm")

ggmap - OpenStreetMap - black/white

qmap('Mannheim', zoom = 14, source="osm",color="bw")

ggmap - maptype satellite

qmap('Mannheim', zoom = 14, maptype="satellite")

ggmap - maptype satellite zoom 21

qmap('Mannheim', zoom = 21, maptype="hybrid")

ggmap - maptype hybrid

qmap("Mannheim", zoom = 14, maptype="hybrid")

Terrain/physical maps

Physical maps illustrate the physical features of an area, such as the mountains, rivers and lakes. Colors are used to show relief differences in land elevations.

ggmap - terrain map

qmap('Schriesheim', zoom = 14,
 maptype="terrain")

Abstracted maps

pic

Source: Design faves

ggmap - maptype watercolor

qmap('Mannheim', zoom = 14,
 maptype="watercolor",source="stamen")

ggmap - source stamen

qmap('Mannheim', zoom = 14,
 maptype="toner",source="stamen")

ggmap - maptype toner-lite

qmap('Mannheim', zoom = 14,
 maptype="toner-lite",source="stamen")

ggmap - maptype toner-hybrid

qmap('Mannheim', zoom = 14,
 maptype="toner-hybrid",source="stamen")

ggmap - maptype terrain-lines

qmap('Mannheim', zoom = 14,
 maptype="terrain-lines",source="stamen")

Stamen maps

These high-contrast B+W (black and white) maps are featured in our Dotspotting project. They are perfect for data mashups and exploring river meanders and coastal zones.

Source: http://maps.stamen.com/

Save graphics

pic

ggmap - create an object

MA_map <- qmap('Mannheim', 
               zoom = 14,
               maptype="toner",
               source="stamen")

Geocoding

Geocoding (…) uses a description of a location, most typically a postal address or place name, to find geographic coordinates from spatial reference data …

Wikipedia - Geocoding

library(ggmap)
geocode("Mannheim Wasserturm",source="google")
lon lat
34.79565 32.1221

Latitude and Longitude

pic

Source

Coords of different places in Germany

cities lon lat
Hamburg 9.993682 53.55108
Koeln 6.960279 50.93753
Dresden 13.737262 51.05041
Muenchen 11.581981 48.13513

Reverse geocoding

Reverse geocoding is the process of back (reverse) coding of a point location (latitude, longitude) to a readable address or place name. This permits the identification of nearby street addresses, places, and/or areal subdivisions such as neighbourhoods, county, state, or country.

Source: Wikipedia

revgeocode(c(48,8))
## [1] "Unnamed Road, Somalia"

Get the distance between 2 points

mapdist("Q1, 4 Mannheim","B2, 1 Mannheim")
mapdist("Q1, 4 Mannheim","B2, 1 Mannheim",mode="walking")

Get another distance

mapdist("Q1, 4 Mannheim","B2, 1 Mannheim",mode="bicycling")

Take Home Messages/Homework

What you should know:

Homework:

And now some more advanced stuff….

Geocoding - various points of interest

POI1 <- geocode("B2, 1 Mannheim",source="google")
POI2 <- geocode("Hbf Mannheim",source="google")
POI3 <- geocode("Wasserturm Mannheim",source="google")
ListPOI <-rbind(POI1,POI2,POI3)
POI1;POI2;POI3
##        lon      lat
## 1 8.462844 49.48569
##        lon      lat
## 1 8.469879 49.47972
##        lon      lat
## 1 8.466039 49.48746

Points in map

MA_map +
geom_point(aes(x = lon, y = lat),
data = ListPOI)

Points in map

MA_map +
geom_point(aes(x = lon, y = lat),col="red",
data = ListPOI)

ggmap - adding different colors

ListPOI$color <- c("A","B","C")
MA_map +
geom_point(aes(x = lon, y = lat,col=color),
data = ListPOI)

ggmap - bigger dots

ListPOI$size <- c(10,20,30)
MA_map +
geom_point(aes(x = lon, y = lat,col=color,size=size),
data = ListPOI)

Get a route from Google maps

from <- "Mannheim Hbf"
to <- "Mannheim B2 , 1"
route_df <- route(from, to, structure = "route")

More information

Draw a map with this information

qmap("Mannheim Hbf", zoom = 14) +
  geom_path(
    aes(x = lon, y = lat),  colour = "red", size = 1.5,
    data = route_df, lineend = "round"
  )

Resources

More about adding points

pic

Cheatsheet

pic

Resources and literature

ggmap: Spatial Visualization with ggplot2

by David Kahle and Hadley Wickham